# Copyright (c) Facebook, Inc. and its affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.

TESTS_DIR = ../..

include $(TESTS_DIR)/base.make

SOURCES = ../codetoanalyze/hello.c
OBJECTS = hello.o

default: print

infer-out/report.json: $(SOURCES) $(CLANG_DEPS)
	$(QUIET)$(call silent_on_success,Running infer,\
	$(INFER_BIN) run -- clang -c $(SOURCES))

.PHONY: test1
test1: infer-out/report.json
	$(QUIET)$(call silent_on_success,Testing infer-explore: --max-nesting=3,\
	$(INFER_BIN) explore -o infer-out \
	  --select 0 --max-nesting 3)

.PHONY: test2
test2: infer-out/report.json
	$(QUIET)$(call silent_on_success,Testing infer-explore: --max-nesting=0,\
	$(INFER_BIN) explore -o infer-out \
	  --select 0 --max-nesting 0)

.PHONY: test3
test3: infer-out/report.json
	$(QUIET)$(call silent_on_success,Testing infer-explore: --no-source-preview,\
	$(INFER_BIN) explore -o infer-out \
	  --select 0 --no-source-preview)


.PHONY: print
print:
# the tests cannot be run in parallel safely, run them sequentially
	$(MAKE) test1
	$(MAKE) test2
	$(MAKE) test3

.PHONY: test
test: print

.PHONY: replace
replace: test

.PHONY: clean
clean:
	$(REMOVE_DIR) $(OBJECTS) infer-out $(CLEAN_EXTRA)
